package com.idealighter.game.dao.dic.po;

import java.util.ArrayList;
import java.util.List;

public class ShuihuIconExample {
  protected String orderByClause;

  protected boolean distinct;

  protected List<Criteria> oredCriteria;

  private Integer limit;

  private Integer offset;

  public ShuihuIconExample() {
    oredCriteria = new ArrayList<Criteria>();
  }

  public void setOrderByClause(String orderByClause) {
    this.orderByClause = orderByClause;
  }

  public String getOrderByClause() {
    return orderByClause;
  }

  public void setDistinct(boolean distinct) {
    this.distinct = distinct;
  }

  public boolean isDistinct() {
    return distinct;
  }

  public List<Criteria> getOredCriteria() {
    return oredCriteria;
  }

  public void or(Criteria criteria) {
    oredCriteria.add(criteria);
  }

  public Criteria or() {
    Criteria criteria = createCriteriaInternal();
    oredCriteria.add(criteria);
    return criteria;
  }

  public Criteria createCriteria() {
    Criteria criteria = createCriteriaInternal();
    if (oredCriteria.size() == 0) {
      oredCriteria.add(criteria);
    }
    return criteria;
  }

  protected Criteria createCriteriaInternal() {
    Criteria criteria = new Criteria();
    return criteria;
  }

  public void clear() {
    oredCriteria.clear();
    orderByClause = null;
    distinct = false;
  }

  public void setLimit(Integer limit) {
    this.limit = limit;
  }

  public Integer getLimit() {
    return limit;
  }

  public void setOffset(Integer offset) {
    this.offset = offset;
  }

  public Integer getOffset() {
    return offset;
  }

  protected abstract static class GeneratedCriteria {
    protected List<Criterion> criteria;

    protected GeneratedCriteria() {
      super();
      criteria = new ArrayList<Criterion>();
    }

    public boolean isValid() {
      return criteria.size() > 0;
    }

    public List<Criterion> getAllCriteria() {
      return criteria;
    }

    public List<Criterion> getCriteria() {
      return criteria;
    }

    protected void addCriterion(String condition) {
      if (condition == null) {
        throw new RuntimeException("Value for condition cannot be null");
      }
      criteria.add(new Criterion(condition));
    }

    protected void addCriterion(String condition, Object value, String property) {
      if (value == null) {
        throw new RuntimeException("Value for " + property + " cannot be null");
      }
      criteria.add(new Criterion(condition, value));
    }

    protected void addCriterion(String condition, Object value1, Object value2, String property) {
      if (value1 == null || value2 == null) {
        throw new RuntimeException("Between values for " + property + " cannot be null");
      }
      criteria.add(new Criterion(condition, value1, value2));
    }

    public Criteria andIdIsNull() {
      addCriterion("id is null");
      return (Criteria) this;
    }

    public Criteria andIdIsNotNull() {
      addCriterion("id is not null");
      return (Criteria) this;
    }

    public Criteria andIdEqualTo(Integer value) {
      addCriterion("id =", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdNotEqualTo(Integer value) {
      addCriterion("id <>", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdGreaterThan(Integer value) {
      addCriterion("id >", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdGreaterThanOrEqualTo(Integer value) {
      addCriterion("id >=", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdLessThan(Integer value) {
      addCriterion("id <", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdLessThanOrEqualTo(Integer value) {
      addCriterion("id <=", value, "id");
      return (Criteria) this;
    }

    public Criteria andIdIn(List<Integer> values) {
      addCriterion("id in", values, "id");
      return (Criteria) this;
    }

    public Criteria andIdNotIn(List<Integer> values) {
      addCriterion("id not in", values, "id");
      return (Criteria) this;
    }

    public Criteria andIdBetween(Integer value1, Integer value2) {
      addCriterion("id between", value1, value2, "id");
      return (Criteria) this;
    }

    public Criteria andIdNotBetween(Integer value1, Integer value2) {
      addCriterion("id not between", value1, value2, "id");
      return (Criteria) this;
    }

    public Criteria andNameIsNull() {
      addCriterion("name is null");
      return (Criteria) this;
    }

    public Criteria andNameIsNotNull() {
      addCriterion("name is not null");
      return (Criteria) this;
    }

    public Criteria andNameEqualTo(String value) {
      addCriterion("name =", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameNotEqualTo(String value) {
      addCriterion("name <>", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameGreaterThan(String value) {
      addCriterion("name >", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameGreaterThanOrEqualTo(String value) {
      addCriterion("name >=", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameLessThan(String value) {
      addCriterion("name <", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameLessThanOrEqualTo(String value) {
      addCriterion("name <=", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameLike(String value) {
      addCriterion("name like", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameNotLike(String value) {
      addCriterion("name not like", value, "name");
      return (Criteria) this;
    }

    public Criteria andNameIn(List<String> values) {
      addCriterion("name in", values, "name");
      return (Criteria) this;
    }

    public Criteria andNameNotIn(List<String> values) {
      addCriterion("name not in", values, "name");
      return (Criteria) this;
    }

    public Criteria andNameBetween(String value1, String value2) {
      addCriterion("name between", value1, value2, "name");
      return (Criteria) this;
    }

    public Criteria andNameNotBetween(String value1, String value2) {
      addCriterion("name not between", value1, value2, "name");
      return (Criteria) this;
    }

    public Criteria andDescIsNull() {
      addCriterion("desc is null");
      return (Criteria) this;
    }

    public Criteria andDescIsNotNull() {
      addCriterion("desc is not null");
      return (Criteria) this;
    }

    public Criteria andDescEqualTo(String value) {
      addCriterion("desc =", value, "desc");
      return (Criteria) this;
    }

    public Criteria andDescNotEqualTo(String value) {
      addCriterion("desc <>", value, "desc");
      return (Criteria) this;
    }

    public Criteria andDescGreaterThan(String value) {
      addCriterion("desc >", value, "desc");
      return (Criteria) this;
    }

    public Criteria andDescGreaterThanOrEqualTo(String value) {
      addCriterion("desc >=", value, "desc");
      return (Criteria) this;
    }

    public Criteria andDescLessThan(String value) {
      addCriterion("desc <", value, "desc");
      return (Criteria) this;
    }

    public Criteria andDescLessThanOrEqualTo(String value) {
      addCriterion("desc <=", value, "desc");
      return (Criteria) this;
    }

    public Criteria andDescLike(String value) {
      addCriterion("desc like", value, "desc");
      return (Criteria) this;
    }

    public Criteria andDescNotLike(String value) {
      addCriterion("desc not like", value, "desc");
      return (Criteria) this;
    }

    public Criteria andDescIn(List<String> values) {
      addCriterion("desc in", values, "desc");
      return (Criteria) this;
    }

    public Criteria andDescNotIn(List<String> values) {
      addCriterion("desc not in", values, "desc");
      return (Criteria) this;
    }

    public Criteria andDescBetween(String value1, String value2) {
      addCriterion("desc between", value1, value2, "desc");
      return (Criteria) this;
    }

    public Criteria andDescNotBetween(String value1, String value2) {
      addCriterion("desc not between", value1, value2, "desc");
      return (Criteria) this;
    }

    public Criteria andTypeIsNull() {
      addCriterion("type is null");
      return (Criteria) this;
    }

    public Criteria andTypeIsNotNull() {
      addCriterion("type is not null");
      return (Criteria) this;
    }

    public Criteria andTypeEqualTo(Byte value) {
      addCriterion("type =", value, "type");
      return (Criteria) this;
    }

    public Criteria andTypeNotEqualTo(Byte value) {
      addCriterion("type <>", value, "type");
      return (Criteria) this;
    }

    public Criteria andTypeGreaterThan(Byte value) {
      addCriterion("type >", value, "type");
      return (Criteria) this;
    }

    public Criteria andTypeGreaterThanOrEqualTo(Byte value) {
      addCriterion("type >=", value, "type");
      return (Criteria) this;
    }

    public Criteria andTypeLessThan(Byte value) {
      addCriterion("type <", value, "type");
      return (Criteria) this;
    }

    public Criteria andTypeLessThanOrEqualTo(Byte value) {
      addCriterion("type <=", value, "type");
      return (Criteria) this;
    }

    public Criteria andTypeIn(List<Byte> values) {
      addCriterion("type in", values, "type");
      return (Criteria) this;
    }

    public Criteria andTypeNotIn(List<Byte> values) {
      addCriterion("type not in", values, "type");
      return (Criteria) this;
    }

    public Criteria andTypeBetween(Byte value1, Byte value2) {
      addCriterion("type between", value1, value2, "type");
      return (Criteria) this;
    }

    public Criteria andTypeNotBetween(Byte value1, Byte value2) {
      addCriterion("type not between", value1, value2, "type");
      return (Criteria) this;
    }

    public Criteria andWeightIsNull() {
      addCriterion("weight is null");
      return (Criteria) this;
    }

    public Criteria andWeightIsNotNull() {
      addCriterion("weight is not null");
      return (Criteria) this;
    }

    public Criteria andWeightEqualTo(Integer value) {
      addCriterion("weight =", value, "weight");
      return (Criteria) this;
    }

    public Criteria andWeightNotEqualTo(Integer value) {
      addCriterion("weight <>", value, "weight");
      return (Criteria) this;
    }

    public Criteria andWeightGreaterThan(Integer value) {
      addCriterion("weight >", value, "weight");
      return (Criteria) this;
    }

    public Criteria andWeightGreaterThanOrEqualTo(Integer value) {
      addCriterion("weight >=", value, "weight");
      return (Criteria) this;
    }

    public Criteria andWeightLessThan(Integer value) {
      addCriterion("weight <", value, "weight");
      return (Criteria) this;
    }

    public Criteria andWeightLessThanOrEqualTo(Integer value) {
      addCriterion("weight <=", value, "weight");
      return (Criteria) this;
    }

    public Criteria andWeightIn(List<Integer> values) {
      addCriterion("weight in", values, "weight");
      return (Criteria) this;
    }

    public Criteria andWeightNotIn(List<Integer> values) {
      addCriterion("weight not in", values, "weight");
      return (Criteria) this;
    }

    public Criteria andWeightBetween(Integer value1, Integer value2) {
      addCriterion("weight between", value1, value2, "weight");
      return (Criteria) this;
    }

    public Criteria andWeightNotBetween(Integer value1, Integer value2) {
      addCriterion("weight not between", value1, value2, "weight");
      return (Criteria) this;
    }

    public Criteria andEffect1IsNull() {
      addCriterion("effect1 is null");
      return (Criteria) this;
    }

    public Criteria andEffect1IsNotNull() {
      addCriterion("effect1 is not null");
      return (Criteria) this;
    }

    public Criteria andEffect1EqualTo(String value) {
      addCriterion("effect1 =", value, "effect1");
      return (Criteria) this;
    }

    public Criteria andEffect1NotEqualTo(String value) {
      addCriterion("effect1 <>", value, "effect1");
      return (Criteria) this;
    }

    public Criteria andEffect1GreaterThan(String value) {
      addCriterion("effect1 >", value, "effect1");
      return (Criteria) this;
    }

    public Criteria andEffect1GreaterThanOrEqualTo(String value) {
      addCriterion("effect1 >=", value, "effect1");
      return (Criteria) this;
    }

    public Criteria andEffect1LessThan(String value) {
      addCriterion("effect1 <", value, "effect1");
      return (Criteria) this;
    }

    public Criteria andEffect1LessThanOrEqualTo(String value) {
      addCriterion("effect1 <=", value, "effect1");
      return (Criteria) this;
    }

    public Criteria andEffect1Like(String value) {
      addCriterion("effect1 like", value, "effect1");
      return (Criteria) this;
    }

    public Criteria andEffect1NotLike(String value) {
      addCriterion("effect1 not like", value, "effect1");
      return (Criteria) this;
    }

    public Criteria andEffect1In(List<String> values) {
      addCriterion("effect1 in", values, "effect1");
      return (Criteria) this;
    }

    public Criteria andEffect1NotIn(List<String> values) {
      addCriterion("effect1 not in", values, "effect1");
      return (Criteria) this;
    }

    public Criteria andEffect1Between(String value1, String value2) {
      addCriterion("effect1 between", value1, value2, "effect1");
      return (Criteria) this;
    }

    public Criteria andEffect1NotBetween(String value1, String value2) {
      addCriterion("effect1 not between", value1, value2, "effect1");
      return (Criteria) this;
    }

    public Criteria andEffect2IsNull() {
      addCriterion("effect2 is null");
      return (Criteria) this;
    }

    public Criteria andEffect2IsNotNull() {
      addCriterion("effect2 is not null");
      return (Criteria) this;
    }

    public Criteria andEffect2EqualTo(String value) {
      addCriterion("effect2 =", value, "effect2");
      return (Criteria) this;
    }

    public Criteria andEffect2NotEqualTo(String value) {
      addCriterion("effect2 <>", value, "effect2");
      return (Criteria) this;
    }

    public Criteria andEffect2GreaterThan(String value) {
      addCriterion("effect2 >", value, "effect2");
      return (Criteria) this;
    }

    public Criteria andEffect2GreaterThanOrEqualTo(String value) {
      addCriterion("effect2 >=", value, "effect2");
      return (Criteria) this;
    }

    public Criteria andEffect2LessThan(String value) {
      addCriterion("effect2 <", value, "effect2");
      return (Criteria) this;
    }

    public Criteria andEffect2LessThanOrEqualTo(String value) {
      addCriterion("effect2 <=", value, "effect2");
      return (Criteria) this;
    }

    public Criteria andEffect2Like(String value) {
      addCriterion("effect2 like", value, "effect2");
      return (Criteria) this;
    }

    public Criteria andEffect2NotLike(String value) {
      addCriterion("effect2 not like", value, "effect2");
      return (Criteria) this;
    }

    public Criteria andEffect2In(List<String> values) {
      addCriterion("effect2 in", values, "effect2");
      return (Criteria) this;
    }

    public Criteria andEffect2NotIn(List<String> values) {
      addCriterion("effect2 not in", values, "effect2");
      return (Criteria) this;
    }

    public Criteria andEffect2Between(String value1, String value2) {
      addCriterion("effect2 between", value1, value2, "effect2");
      return (Criteria) this;
    }

    public Criteria andEffect2NotBetween(String value1, String value2) {
      addCriterion("effect2 not between", value1, value2, "effect2");
      return (Criteria) this;
    }

    public Criteria andMusic1IsNull() {
      addCriterion("music1 is null");
      return (Criteria) this;
    }

    public Criteria andMusic1IsNotNull() {
      addCriterion("music1 is not null");
      return (Criteria) this;
    }

    public Criteria andMusic1EqualTo(String value) {
      addCriterion("music1 =", value, "music1");
      return (Criteria) this;
    }

    public Criteria andMusic1NotEqualTo(String value) {
      addCriterion("music1 <>", value, "music1");
      return (Criteria) this;
    }

    public Criteria andMusic1GreaterThan(String value) {
      addCriterion("music1 >", value, "music1");
      return (Criteria) this;
    }

    public Criteria andMusic1GreaterThanOrEqualTo(String value) {
      addCriterion("music1 >=", value, "music1");
      return (Criteria) this;
    }

    public Criteria andMusic1LessThan(String value) {
      addCriterion("music1 <", value, "music1");
      return (Criteria) this;
    }

    public Criteria andMusic1LessThanOrEqualTo(String value) {
      addCriterion("music1 <=", value, "music1");
      return (Criteria) this;
    }

    public Criteria andMusic1Like(String value) {
      addCriterion("music1 like", value, "music1");
      return (Criteria) this;
    }

    public Criteria andMusic1NotLike(String value) {
      addCriterion("music1 not like", value, "music1");
      return (Criteria) this;
    }

    public Criteria andMusic1In(List<String> values) {
      addCriterion("music1 in", values, "music1");
      return (Criteria) this;
    }

    public Criteria andMusic1NotIn(List<String> values) {
      addCriterion("music1 not in", values, "music1");
      return (Criteria) this;
    }

    public Criteria andMusic1Between(String value1, String value2) {
      addCriterion("music1 between", value1, value2, "music1");
      return (Criteria) this;
    }

    public Criteria andMusic1NotBetween(String value1, String value2) {
      addCriterion("music1 not between", value1, value2, "music1");
      return (Criteria) this;
    }

    public Criteria andMusic2IsNull() {
      addCriterion("music2 is null");
      return (Criteria) this;
    }

    public Criteria andMusic2IsNotNull() {
      addCriterion("music2 is not null");
      return (Criteria) this;
    }

    public Criteria andMusic2EqualTo(String value) {
      addCriterion("music2 =", value, "music2");
      return (Criteria) this;
    }

    public Criteria andMusic2NotEqualTo(String value) {
      addCriterion("music2 <>", value, "music2");
      return (Criteria) this;
    }

    public Criteria andMusic2GreaterThan(String value) {
      addCriterion("music2 >", value, "music2");
      return (Criteria) this;
    }

    public Criteria andMusic2GreaterThanOrEqualTo(String value) {
      addCriterion("music2 >=", value, "music2");
      return (Criteria) this;
    }

    public Criteria andMusic2LessThan(String value) {
      addCriterion("music2 <", value, "music2");
      return (Criteria) this;
    }

    public Criteria andMusic2LessThanOrEqualTo(String value) {
      addCriterion("music2 <=", value, "music2");
      return (Criteria) this;
    }

    public Criteria andMusic2Like(String value) {
      addCriterion("music2 like", value, "music2");
      return (Criteria) this;
    }

    public Criteria andMusic2NotLike(String value) {
      addCriterion("music2 not like", value, "music2");
      return (Criteria) this;
    }

    public Criteria andMusic2In(List<String> values) {
      addCriterion("music2 in", values, "music2");
      return (Criteria) this;
    }

    public Criteria andMusic2NotIn(List<String> values) {
      addCriterion("music2 not in", values, "music2");
      return (Criteria) this;
    }

    public Criteria andMusic2Between(String value1, String value2) {
      addCriterion("music2 between", value1, value2, "music2");
      return (Criteria) this;
    }

    public Criteria andMusic2NotBetween(String value1, String value2) {
      addCriterion("music2 not between", value1, value2, "music2");
      return (Criteria) this;
    }
  }

  /**
   */
  public static class Criteria extends GeneratedCriteria {

    protected Criteria() {
      super();
    }
  }

  public static class Criterion {
    private String condition;

    private Object value;

    private Object secondValue;

    private boolean noValue;

    private boolean singleValue;

    private boolean betweenValue;

    private boolean listValue;

    private String typeHandler;

    public String getCondition() {
      return condition;
    }

    public Object getValue() {
      return value;
    }

    public Object getSecondValue() {
      return secondValue;
    }

    public boolean isNoValue() {
      return noValue;
    }

    public boolean isSingleValue() {
      return singleValue;
    }

    public boolean isBetweenValue() {
      return betweenValue;
    }

    public boolean isListValue() {
      return listValue;
    }

    public String getTypeHandler() {
      return typeHandler;
    }

    protected Criterion(String condition) {
      super();
      this.condition = condition;
      this.typeHandler = null;
      this.noValue = true;
    }

    protected Criterion(String condition, Object value, String typeHandler) {
      super();
      this.condition = condition;
      this.value = value;
      this.typeHandler = typeHandler;
      if (value instanceof List<?>) {
        this.listValue = true;
      } else {
        this.singleValue = true;
      }
    }

    protected Criterion(String condition, Object value) {
      this(condition, value, null);
    }

    protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
      super();
      this.condition = condition;
      this.value = value;
      this.secondValue = secondValue;
      this.typeHandler = typeHandler;
      this.betweenValue = true;
    }

    protected Criterion(String condition, Object value, Object secondValue) {
      this(condition, value, secondValue, null);
    }
  }
}
